//=================================================================================================
// Copyright 2014-2015 Dirk Lemstra <https://graphicsmagick.codeplex.com/>
//
// Licensed under the ImageMagick License (the "License"); you may not use this file except in 
// compliance with the License. You may obtain a copy of the License at
//
//   http://www.imagemagick.org/script/license.php
//
// Unless required by applicable law or agreed to in writing, software distributed under the
// License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
// express or implied. See the License for the specific language governing permissions and
// limitations under the License.
//=================================================================================================
#pragma once

#include "Stdafx.h"

namespace GraphicsMagick
{
	///=============================================================================================
	/// <summary>
	/// All exif tags from the Exif standard 2.2
	/// </summary>
	public enum class ExifTag
	{
		Unknown = 0xFFFF,
		SubIFDOffset = 0x8769,
		GPSIFDOffset = 0x8825,

		ImageWidth = 0x0100,
		ImageLength = 0x0101,
		BitsPerSample = 0x0102,
		Compression = 0x0103,
		PhotometricInterpretation = 0x0106,
		Threshholding = 0x0107,
		CellWidth = 0x0108,
		CellLength = 0x0109,
		FillOrder = 0x010A,
		ImageDescription = 0x010E,
		Make = 0x010F,
		Model = 0x0110,
		StripOffsets = 0x0111,
		Orientation = 0x0112,
		SamplesPerPixel = 0x0115,
		RowsPerStrip = 0x0116,
		StripByteCounts = 0x0117,
		MinSampleValue = 0x0118,
		MaxSampleValue = 0x0119,
		XResolution = 0x011A,
		YResolution = 0x011B,
		PlanarConfiguration = 0x011C,
		FreeOffsets = 0x0120,
		FreeByteCounts = 0x0121,
		GrayResponseUnit = 0x0122,
		GrayResponseCurve = 0x0123,
		ResolutionUnit = 0x0128,
		Software = 0x0131,
		DateTime = 0x0132,
		Artist = 0x013B,
		HostComputer = 0x013C,
		ColorMap = 0x0140,
		ExtraSamples = 0x0152,
		Copyright = 0x8298,

		DocumentName = 0x010D,
		PageName = 0x011D,
		XPosition = 0x011E,
		YPosition = 0x011F,
		T4Options = 0x0124,
		T6Options = 0x0125,
		PageNumber = 0x0129,
		TransferFunction = 0x012D,
		Predictor = 0x013D,
		WhitePoint = 0x013E,
		PrimaryChromaticities = 0x013F,
		HalftoneHints = 0x0141,
		TileWidth = 0x0142,
		TileLength = 0x0143,
		TileOffsets = 0x0144,
		TileByteCounts = 0x0145,
		BadFaxLines = 0x0146,
		CleanFaxData = 0x0147,
		ConsecutiveBadFaxLines = 0x0148,
		InkSet = 0x014C,
		InkNames = 0x014D,
		NumberOfInks = 0x014E,
		DotRange = 0x0150,
		TargetPrinter = 0x0151,
		SampleFormat = 0x0153,
		SMinSampleValue = 0x0154,
		SMaxSampleValue = 0x0155,
		TransferRange = 0x0156,
		ClipPath = 0x0157,
		XClipPathUnits = 0x0158,
		YClipPathUnits = 0x0159,
		Indexed = 0x015A,
		JPEGTables = 0x015B,
		OPIProxy = 0x015F,
		ProfileType = 0x0191,
		FaxProfile = 0x0192,
		CodingMethods = 0x0193,
		VersionYear = 0x0194,
		ModeNumber = 0x0195,
		Decode = 0x01B1,
		DefaultImageColor = 0x01B2,
		JPEGProc = 0x0200,
		JPEGInterchangeFormat = 0x0201,
		JPEGInterchangeFormatLength = 0x0202,
		JPEGRestartInterval = 0x0203,
		JPEGLosslessPredictors = 0x0205,
		JPEGPointTransforms = 0x0206,
		JPEGQTables = 0x0207,
		JPEGDCTables = 0x0208,
		JPEGACTables = 0x0209,
		YCbCrCoefficients = 0x0211,
		YCbCrSubsampling = 0x0212,
		YCbCrPositioning = 0x0213,
		ReferenceBlackWhite = 0x0214,
		StripRowCounts = 0x022F,
		XMP = 0x02BC,
		ImageID = 0x800D,
		ImageLayer = 0x87AC,

		ExposureTime = 0x829A,
		FNumber = 0x829D,
		ExposureProgram = 0x8822,
		SpectralSensitivity = 0x8824,
		ISOSpeedRatings = 0x8827,
		OECF = 0x8828,
		ExifVersion = 0x9000,
		DateTimeOriginal = 0x9003,
		DateTimeDigitized = 0x9004,
		ComponentsConfiguration = 0x9101,
		CompressedBitsPerPixel = 0x9102,
		ShutterSpeedValue = 0x9201,
		ApertureValue = 0x9202,
		BrightnessValue = 0x9203,
		ExposureBiasValue = 0x9204,
		MaxApertureValue = 0x9205,
		SubjectDistance = 0x9206,
		MeteringMode = 0x9207,
		LightSource = 0x9208,
		Flash = 0x9209,
		FocalLength = 0x920A,
		SubjectArea = 0x9214,
		MakerNote = 0x927C,
		UserComment = 0x9286,
		SubsecTime = 0x9290,
		SubsecTimeOriginal = 0x9291,
		SubsecTimeDigitized = 0x9292,
		FlashpixVersion = 0xA000,
		ColorSpace = 0xA001,
		PixelXDimension = 0xA002,
		PixelYDimension = 0xA003,
		RelatedSoundFile = 0xA004,
		FlashEnergy = 0xA20B,
		SpatialFrequencyResponse = 0xA20C,
		FocalPlaneXResolution = 0xA20E,
		FocalPlaneYResolution = 0xA20F,
		FocalPlaneResolutionUnit = 0xA210,
		SubjectLocation = 0xA214,
		ExposureIndex = 0xA215,
		SensingMethod = 0xA217,
		FileSource = 0xA300,
		SceneType = 0xA301,
		CFAPattern = 0xA302,
		CustomRendered = 0xA401,
		ExposureMode = 0xA402,
		WhiteBalance = 0xA403,
		DigitalZoomRatio = 0xA404,
		FocalLengthIn35mmFilm = 0xA405,
		SceneCaptureType = 0xA406,
		GainControl = 0xA407,
		Contrast = 0xA408,
		Saturation = 0xA409,
		Sharpness = 0xA40A,
		DeviceSettingDescription = 0xA40B,
		SubjectDistanceRange = 0xA40C,
		ImageUniqueID = 0xA420,

		GPSVersionID = 0x0000,
		GPSLatitudeRef = 0x0001,
		GPSLatitude = 0x0002,
		GPSLongitudeRef = 0x0003,
		GPSLongitude = 0x0004,
		GPSAltitudeRef = 0x0005,
		GPSAltitude = 0x0006,
		GPSTimestamp = 0x0007,
		GPSSatellites = 0x0008,
		GPSStatus = 0x0009,
		GPSMeasureMode = 0x000A,
		GPSDOP = 0x000B,
		GPSSpeedRef = 0x000C,
		GPSSpeed = 0x000D,
		GPSTrackRef = 0x000E,
		GPSTrack = 0x000F,
		GPSImgDirectionRef = 0x0010,
		GPSImgDirection = 0x0011,
		GPSMapDatum = 0x0012,
		GPSDestLatitudeRef = 0x0013,
		GPSDestLatitude = 0x0014,
		GPSDestLongitudeRef = 0x0015,
		GPSDestLongitude = 0x0016,
		GPSDestBearingRef = 0x0017,
		GPSDestBearing = 0x0018,
		GPSDestDistanceRef = 0x0019,
		GPSDestDistance = 0x001A,
		GPSProcessingMethod = 0x001B,
		GPSAreaInformation = 0x001C,
		GPSDateStamp = 0x001D,
		GPSDifferential = 0x001E
	};
	//==============================================================================================
}